<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
<ui:composition template="../../templates/layout.xhtml">
<ui:param name="jsfBean" value="#{fnConsultaManifiestoJsfBean}"/>
<ui:define name="title">Consulta de Bls</ui:define>
<ui:define name="content">
<p:spacer height="5px"/>
<p:panel styleClass="pnlTitlePage">
    <h:outputText value="Consulta de Manifiesto" style="font-size:16px;" styleClass="resultHeader"/>
</p:panel>
<p:spacer height="5px"/>
<h:form id="formPrincipal" prependId="false">
    <!-- Panel de búsqueda y resultados -->
    <p:panel id="pnlCriteriaConsultaManifiesto" header="Búsqueda de Bls" styleClass="pnlCriteria">
        <h:panelGrid id="pngCriteriaConsultaManifiesto" columns="8">

            <h:outputLabel for="selectAnno" value="Año"/>
            <p:selectOneMenu id="selectAnno" value="#{jsfBean.filter.annoManifiesto}" style="width:90px;">
                <f:selectItem itemLabel="Seleccione" itemValue=""/>
                <f:selectItems value="#{jsfBean.annoList}"/>
            </p:selectOneMenu>

            <h:outputLabel for="txtManifiesto" value="Manifiesto"/>
            <p:inputText id="txtManifiesto" value="#{jsfBean.filter.numeroManifiesto}"
                         onkeypress="return isNumeric(event)" size="12" maxlength="5"/>

            <h:outputLabel for="txtBl" value="Nº Bl"/>
            <p:inputText id="txtBl" value="#{jsfBean.filter.numeroBl}"
                         size="30" maxlength="50"/>

            <h:outputLabel for="cmbOperacion" value="Operación"/>
            <p:selectOneMenu id="cmbOperacion" value="#{jsfBean.filter.operacionCarga}"
                             converter="dpwcEnumConverter"
                             style="width:140px;">
                <f:selectItem itemLabel="Todos" itemValue=""/>
                <f:selectItems value="#{jsfBean.operacionCargaList}" var="operacion"
                               itemLabel="#{operacion.nombre}"
                               itemValue="#{operacion.codigo}"/>/>
            </p:selectOneMenu>

            <h:outputLabel for="chkComparaN4" value="Comparar N4"/>
            <p:selectBooleanCheckbox id="chkComparaN4" value="#{jsfBean.filter.compararN4}"
                    />

        </h:panelGrid>

        <p:spacer height="3px"/>

        <p:spacer height="3px"/>
        <h:panelGrid id="gridBusqueda3" columns="3">
            <p:commandButton ajax="true" value="Buscar" id="btnBuscar" icon="ui-icon-search"
                             actionListener="#{jsfBean.findAction}"
                    />
            <p:commandButton ajax="true" value="Limpiar" id="btnLimpiar" icon="ui-icon-refresh"
                             actionListener="#{jsfBean.cleanAction}"
                    />
        </h:panelGrid>
    </p:panel>

    <p:panel id="pnlResultConsultaManifiesto" toggleable="false" toggleSpeed="250"
             styleClass="pnlResult">
        <f:facet name="header">
            <h:outputText value="Listado de Bls"/>
            <h:outputText value=" (Registros : #{jsfBean.resultListSize}) " styleClass="resultHeader"/>
        </f:facet>
        <p:toolbar>
            <p:toolbarGroup align="right">
                <p:commandButton ajax="true" value="Descargar Manifiesto de Sunat" id="btnDescargar"
                                 icon="ui-icon-refresh"
                                 actionListener="#{jsfBean.descargarManifiestoAction}"
                        />
                <p:commandButton ajax="true" value="Replicar a N4" id="btnReplicar" icon="ui-icon-refresh"
                                 actionListener="#{jsfBean.showDialogAction}"
                        >
                    <f:attribute name="dlgWv" value="wvBlN4Update"/>
                    <f:attribute name="selectedRow" value="#{item}"/>
                    <f:attribute name="accion" value="showBlN4Update"/>
                </p:commandButton>
                <p:commandButton ajax="true" value="Ver Historial" id="btnHistorial"
                                 icon="ui-icon-refresh"
                                 actionListener="#{jsfBean.historialManifiestoAction}"
                        />
                <p:commandButton ajax="true" value="Upload Xml" id="btnUploadXml"
                                 icon="ui-icon-refresh"
                                 actionListener="#{jsfBean.showDialogAction}"
                        >
                    <f:attribute name="dlgWv" value="wvUploadXml"/>
                    <f:attribute name="accion" value="showUpdateXml"/>
                </p:commandButton>
            </p:toolbarGroup>
        </p:toolbar>
        <p:dataTable id="dttResultadoConsultaManifiesto" value="#{jsfBean.resultList}"
                     var="item"
                     rowKey="#{item.numeroBL}"
                     emptyMessage="#{messages.label_no_records_found1}"
                     selection="#{jsfBean.selectedRows}"
                     resizableColumns="false"
                     paginator="#{jsfBean.showablePaginator}"
                     paginatorPosition="bottom"
                     paginatorTemplate="#{messages.label_dataTable_rows_per_page} {RowsPerPageDropdown} | {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} | #{messages.label_dataTable_jump_to_Page} {JumpToPageDropdown}"
                     rowsPerPageTemplate="#{jsfBean.initRowsPerResultPage},10,25,50"
                     rows="#{jsfBean.initRowsPerResultPage}"
                     style="width:100%">
            <p:column styleClass="columnLeftTopClass"
                      style="min-width:90px; max-width:90px">
                <f:facet name="header">
                    <h:outputText value="Nº Bl Master / Nº Det"/>
                </f:facet>
                <h:outputText value="#{item.numeroBLMaster} / #{item.numeroDetalleMaster}"/>
            </p:column>
            <p:column styleClass="columnLeftTopClass" style="min-width:90px; max-width:90px">
                <f:facet name="header">
                    <h:outputText value="Nº Bl House / Nº Det"/>
                </f:facet>
                <h:outputText value="#{item.numeroBL} / #{item.numeroDetalle}"/>
            </p:column>
            <p:column styleClass="columnLeftTopClass" style="min-width:40px; max-width:40px">
                <f:facet name="header">
                    <h:outputText value="Operación"/>
                </f:facet>
                <h:outputText value="#{item.operacionCarga.nombre} "/>
            </p:column>
            <p:column styleClass="columnLeftTopClass" style="min-width:30px; max-width:30px">
                <f:facet name="header">
                    <h:outputText value="Pol"/>
                </f:facet>
                <h:outputText value="#{item.pol} "/>
            </p:column>
            <p:column styleClass="columnLeftTopClass" style="min-width:30px; max-width:30px"
                      rendered="#{jsfBean.filter.compararN4}">
                <f:facet name="header">
                    <h:outputText value="Pol N4"/>
                </f:facet>
                <h:outputText value="#{item.polN4} "/>
            </p:column>
            <p:column styleClass="columnRighTopClass" style="min-width:40px; max-width:200px">
                <f:facet name="header">
                    <h:outputText value="Cant. Bultos"/>
                </f:facet>
                <h:outputText value="#{item.cantidadBultos}">
                    <f:convertNumber pattern="###,###,##0.00" locale="en-US"/>
                </h:outputText>
            </p:column>
            <p:column styleClass="columnRighTopClass" style="min-width:40px; max-width:40px"
                      rendered="#{jsfBean.filter.compararN4}">
                <f:facet name="header">
                    <h:outputText value="Cant. Bultos N4"/>
                </f:facet>
                <h:outputText value="#{item.cantidadBultosN4}">
                    <f:convertNumber pattern="###,###,##0.00" locale="en-US"/>
                </h:outputText>
            </p:column>
            <p:column styleClass="columnRighTopClass" style="min-width:40px; max-width:40px">
                <f:facet name="header">
                    <h:outputText value="Peso Bruto"/>
                </f:facet>
                <h:outputText value="#{item.pesoBruto}">
                    <f:convertNumber pattern="###,###,##0.00" locale="en-US"/>
                </h:outputText>
            </p:column>
            <p:column styleClass="columnLeftTopClass" style="min-width:160px; max-width:160px">
                <f:facet name="header">
                    <h:outputText value="Consignee"/>
                </f:facet>
                <h:outputText value="#{item.consignee} "/>
            </p:column>
            <p:column styleClass="columnLeftTopClass" style="min-width:160px; max-width:160px"
                      rendered="#{jsfBean.filter.compararN4}">
                <f:facet name="header">
                    <h:outputText value="Consignee N4"/>
                </f:facet>
                <h:outputText value="#{item.consigneeN4} "/>
            </p:column>
            <p:column styleClass="columnCenterTopClass" style="min-width:30px; max-width:30px">
                <f:facet name="header">
                    <h:outputText value="Ver Cont."/>
                </f:facet>
                <p:commandButton icon="ui-icon-zoomin" title="View"
                                 actionListener="#{jsfBean.showDialogAction}">
                    <f:attribute name="dlgWv" value="wvBlContenedor"/>
                    <f:attribute name="selectedRow" value="#{item}"/>
                    <f:attribute name="accion" value="showManifiestoBlContenedor"/>
                </p:commandButton>
            </p:column>
            <p:column exportable="false" style="min-width:50px; max-width:200px"
                    >
                <f:facet name="header">
                    <h:outputText value="Eliminar"/>
                </f:facet>
                <p:commandButton id="cmbDelete" icon="ui-icon-trash" title="#{messages.label_delete}"
                                 onclick="wvConfirmDelete.show()">
                    <f:setPropertyActionListener value="#{item}" target="#{jsfBean.selectedRow}"/>
                </p:commandButton>
            </p:column>
        </p:dataTable>
    </p:panel>
</h:form>
<p:dialog id="dlgBlContenedor"
          header="#{messages.label_titulo_informacion}"
          modal="true" widgetVar="wvBlContenedor" resizable="true"
          dynamic="true" width="560">
    <p:outputPanel id="pnlBlContenedor">
        <h:panelGrid columns="1" styleClass="centered">
            <h:form>
                <p:panel id="pnlContenedorList" toggleable="false"
                         styleClass="gridContent">
                    <f:facet name="header">
                        <h:outputText value="Listado de Contenedores"/>
                        <h:outputText value=" (Registros : #{fn:length(jsfBean.contenedorBlList)}) "
                                      styleClass="resultHeader"/>
                    </f:facet>
                    <p:dataTable id="dttWarning" value="#{jsfBean.contenedorBlList}"
                                 var="item"
                                 style="width:100%"
                                 paginator="true"
                                 rows="10"
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                 rowsPerPageTemplate="5,10,15">
                        <p:column styleClass="columnLeftTopClass"
                                  style="min-width:100px; max-width:500px">
                            <f:facet name="header">
                                <h:outputText value="Contenedor"/>
                            </f:facet>
                            <h:outputText value="#{item.contenedorId}"/>
                        </p:column>
                        <p:column styleClass="columnRighTopClass"
                                  style="min-width:100px; max-width:500px">
                            <f:facet name="header">
                                <h:outputText value="Peso Manifestado"/>
                            </f:facet>
                            <h:outputText value="#{item.pesoCarga}">
                                <f:convertNumber pattern="###,###,##0.00" locale="en-US"/>
                            </h:outputText>
                        </p:column>
                        <p:column styleClass="columnRighTopClass"
                                  style="min-width:100px; max-width:500px">
                            <f:facet name="header">
                                <h:outputText value="Peso Tara"/>
                            </f:facet>
                            <h:outputText value="#{item.pesoTara}">
                                <f:convertNumber pattern="###,###,##0.00" locale="en-US"/>
                            </h:outputText>
                        </p:column>
                        <p:column styleClass="columnLeftTopClass"
                                  style="min-width:100px; max-width:500px">
                            <f:facet name="header">
                                <h:outputText value="Precinto"/>
                            </f:facet>
                            <h:outputText value="#{item.precintoStr}"/>
                        </p:column>
                    </p:dataTable>
                </p:panel>
            </h:form>
        </h:panelGrid>
        <h:panelGrid columns="1" styleClass="centered">
            <p:commandButton value="#{messages.label_aceptar}"
                             onclick="wvBlContenedor.hide()"/>
        </h:panelGrid>
    </p:outputPanel>
</p:dialog>
<p:dialog id="dlgBlN4Update"
          header="#{messages.label_titulo_informacion}"
          modal="true" widgetVar="wvBlN4Update" resizable="true"
          dynamic="true" width="260">

    <p:outputPanel id="pnlBlN4Update">
        <h:form>
            <h:panelGrid columns="1" styleClass="centered">

                <h:panelGrid columns="6" styleClass="centered">
                    <h:outputLabel for="chkBultos" value="Bultos"/>
                    <p:selectBooleanCheckbox id="chkBultos" value="#{jsfBean.filter.actualizarBultos}"
                            />
                    <h:outputLabel for="chkBultos" value="Pol"/>
                    <p:selectBooleanCheckbox id="chkPol" value="#{jsfBean.filter.actualizarPod}"
                            />
                    <h:outputLabel for="chkBultos" value="Consignee"/>
                    <p:selectBooleanCheckbox id="chkConsignee" value="#{jsfBean.filter.actualizarConsignee}"
                            />
                </h:panelGrid>

            </h:panelGrid>
            <h:panelGrid columns="2" styleClass="centered">
                <p:commandButton value="#{messages.label_aceptar}"
                                 actionListener="#{jsfBean.actualizarManifiestoEnN4Action}"
                                 onclick="wvBlN4Update.hide()"/>

                <p:commandButton value="#{messages.label_close}"
                                 onclick="wvBlN4Update.hide()"/>
            </h:panelGrid>
        </h:form>
    </p:outputPanel>
</p:dialog>
<p:dialog id="dlgUploadXml"
          header="#{messages.label_titulo_informacion}"
          modal="true" widgetVar="wvUploadXml" resizable="true"
          dynamic="true" width="260">

    <p:outputPanel id="pnlUploadXml">
        <h:form>
            <h:panelGrid columns="1" styleClass="centered">
                <p:fileUpload fileUploadListener="#{fnConsultaManifiestoJsfBean.uploadFileAction}"
                              mode="advanced" cancelLabel="Cancelar" uploadLabel="Cargar Archivo Zip"
                              label="Seleccionar Archivo" auto="true"
                              update="txtArchivo"
                              sizeLimit="52428800"
                              allowTypes="/(\.|\/)(zip)$/"/>
                <p:spacer height="10px"/>
                <h:outputText id="txtArchivo" value="(Archivo : #{fnConsultaManifiestoJsfBean.fileName}) "/>
            </h:panelGrid>
            <h:panelGrid columns="2" styleClass="centered">
                <p:commandButton value="#{messages.label_aceptar}"
                                 actionListener="#{fnConsultaManifiestoJsfBean.procesarXmlAction}"
                                 onclick="wvUploadXml.hide()"/>

                <p:commandButton value="#{messages.label_close}"
                                 onclick="wvUploadXml.hide()"/>
            </h:panelGrid>
        </h:form>
    </p:outputPanel>
</p:dialog>
<p:confirmDialog id="cfdConfirmDelete" message="#{messages.confirm_delete_row}"
                 header="#{messages.label_confirm_header}" severity="alert"
                 widgetVar="wvConfirmDelete"
                 appendToBody="true">
    <p:commandButton id="cmbConfirm" value="#{messages.label_si}"
                     process="@this"
                     actionListener="#{jsfBean.deleteAction}"
                     oncomplete="wvConfirmDelete.hide()"/>
    <p:commandButton id="cmbDecline"
                     value="#{messages.label_no}" onclick="wvConfirmDelete.hide()"
                     type="button"/>
</p:confirmDialog>
<p:dialog id="dlgDescargaManifiesto"
          header="#{messages.label_titulo_informacion}"
          modal="true" widgetVar="wvDescargaManifiesto" resizable="true"
          width="350" dynamic="true">
    <p:outputPanel id="pnlDescargaManifiesto">
        <h:form>
            <p:panel id="pnlErrores" toggleable="false"
                     styleClass="gridContent">
                <f:facet name="header">
                    <h:outputText value="Listado de Archivos de Respuesta"/>
                </f:facet>
                <h:outputText value=" (Registros : #{fnConsultaManifiestoJsfBean.totalArchivos}) "
                              styleClass="resultHeader"/>
                <p:dataTable id="dttError" value="#{fnConsultaManifiestoJsfBean.archivosList}"
                             var="item"
                             style="width:100%"
                             paginator="true"
                             rows="10"
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             rowsPerPageTemplate="10,15">
                    <p:column styleClass="columnLeftTopClass"
                              style="min-width:100px; max-width:100px">
                        <f:facet name="header">
                            <h:outputText value="Fecha"/>
                        </f:facet>
                        <h:outputText value="#{item.fecha}">
                            <f:convertDateTime pattern="dd/MM/yyyy kk:mm:ss" timeZone="America/Lima" type="both"/>
                        </h:outputText>
                    </p:column>
                    <p:column styleClass="columnCenterTopClass"
                              >
                        <f:facet name="header">
                            <h:outputText value="Archivo"/>
                        </f:facet>
                        <p:commandLink id="viewFile" ajax="false"
                                       actionListener="#{fnConsultaManifiestoJsfBean.downloadFile}">
                            <h:graphicImage value="/images/icon/save.png" title="Descargar" style="border: 0px;"/>
                            <f:attribute name="filename" value="#{item.nombre}"/>
                        </p:commandLink>
                    </p:column>
                    <p:column styleClass="columnLeftTopClass"
                              style="max-width:60px">
                        <f:facet name="header">
                            <h:outputText value="Estado"/>
                        </f:facet>
                        <h:outputText value="#{item.estado}">
                        </h:outputText>
                    </p:column>
                </p:dataTable>
            </p:panel>
            <h:panelGrid columns="1" styleClass="centered">
                <p:commandButton value="#{messages.label_aceptar}"
                                 onclick="wvDescargaManifiesto.hide()"/>
            </h:panelGrid>
        </h:form>
    </p:outputPanel>
</p:dialog>
</ui:define>
</ui:composition>
</html>